function init(){
    limpiarForm();
    mostrarCarrito();
}
function cargarDatosCliente(objetoOrigen, e){
    if(e.which == 9 || e.which == 13){
        Formato_Rut(objetoOrigen);								
        notaVentaService.cargarDatosCliente(objetoOrigen.value,{
            "content_type": "json",
            "onPreload": {start: showLoading, complete: hideLoading},
            "onFinish": function(response){ 
                    var data = response;
                    if(data.errId == 0){		                        
                        document.getElementById('codigoCliente').value = data.cod_cli;
                        document.getElementById('cliente').value = data.nombre;
                        //document.getElementById('rut').value = data.rut;
                        document.getElementById('codVendedor').value = data.cod_vendedor;
                        document.getElementById('nomVendedor').value = data.nombreVendedor;
                        //alert(data[3]+data[4]);
                    }else {
                    	alerta(data.errGlosa, "Advertencia");   
                    }  
            }  
	});
   }
   return false;
}

function cargarDatosProducto(objetoOrigen,e){
    if(e.which == 9 || e.which == 13){									
        notaVentaService.cargarDatosProducto(objetoOrigen.value,{
            "content_type": "json",
            "onPreload": {start: showLoading, complete: hideLoading},
            "onFinish": function(response){ 
                    var data = response;
                    if(data.errId == 0){		                        
                            document.getElementById('nombreProducto').value = data.nombre;
                            document.getElementById('precioProducto').value = data.precio;                        
                            document.getElementById('calculadora').value = data.precio;
                            document.getElementById('costoProducto').value = data.costo;
                                                //alert(data[3]+data[4]);
                    }else {
                            alerta(data.errGlosa, "Advertencia");   
                    }  
            }  
        });
    }
    
    return false;
}
		

function calc()
{
	var precio=document.formulario.precioProducto.value;
	var descuento=(document.formulario.descuento.value/100);
	var total=0;
	//valido el nombre
    if (document.formulario.precioProducto.value.length==0)
	{
       alert("Tiene que llenar el campo precio");
       document.formulario.precioProducto.focus();
       return 0;
    }
	if (document.formulario.cantidad.value.length==0)
	{
       alert("Tiene que llenar el campo cantidad");
       document.formulario.precio.focus();
       return 0;
    }
	 
	 total=precio;
     precio=Math.round(precio*descuento);
     total=total-precio;
	 document.formulario.calculadora.value=total;
     return 0; 
}

function calculaPorcentaje()
{
  
   var precio = document.formulario.precioProducto.value;
   var precio_req = document.formulario.calculadora.value;
   var porcentaje_descuento = document.formulario.descuento.value = Math.round((100 - (precio_req*100/precio))*1000)/1000;
   
  
}

function opcion(op)
{
   
 switch (op){
   case 'imprimir':
      { 
	     ventana=confirm("¿Esta Seguro(a) de imprimir esta Nota de Venta?"); 
	 
	      if (ventana){
                imprimirNotaVenta();
	        return false;
	      }
	      else{
	         return false;             
	      }
	      break;               
      }
   case 'cancelar':
      {
         ventana=confirm("¿Esta Seguro(a) de cancelar esta Nota de Venta?"); 
	 
	      if (ventana){
	        return true;
	      }
	      else{
	        return false;             
	      }
	      break;
      }
   default: 
      { 
          return false; 
          break;
		  
	   }
   }
}

function valida()
{
         
         var F = document.formulario;
         
         if( vacio(F.codigoCliente.value) == false){
               alert("Introduzca codigo de cliente.");
				   F.codigo_c.focus();
               return false
         }
		   
         if( vacio(F.cliente.value) == false){
               alert("Introduzca cliente.");
				   F.cliente.focus();
               return false
         }
		   
         if( vacio(F.rut.value) == false){
               alert("Introduzca rut.");
				   F.rut.focus();
               return false
         }
         
         if( vacio(F.codigoProducto.value) == false){
               alert("Introduzca codigo de producto.");
				   F.codigop.focus();
               return false
         }
		   
         if( vacio(F.nombreProducto.value) == false){
               alert("Introduzca producto.");
				   F.producto.focus();
               return false
         }
		   
         if( vacio(F.precioProducto.value) == false){
               alert("Introduzca precio.");
				   F.precio.focus();
               return false
         }

         if( vacio(F.cantidad.value) == false || parseInt(F.cantidad.value) <= 0){
               alert("Introduzca cantidad.");
				   F.cantidad.focus();
               return false
         }
         
         if( vacio(F.descuento.value) == false){
               alert("Introduzca descuento.");
				   F.descuento.focus();
               return false
         }
         
         if( vacio(F.pago.value) == false){
               alert("Introduzca pago.");
				   F.pago.focus();
               return false
         }
         
         if( vacio(F.costoProducto.value) == false){
               alert("Introduzca costo.");
		F.costo.focus();
               return false
         }else{
               // alert("OK");
               return true;
         }
}

function agregarProducto(){
	var codProducto     = $('#codigoProducto').val();
	var nombreProducto  = $('#nombreProducto').val();
	var precioProducto  = $('#precioProducto').val();
	var costoProducto   = $('#costoProducto').val();
	var cantidad        = $('#cantidad').val();
	var descuento       = $('#descuento').val();
	
	if(!validarAgregarProducto()){
		return;
	}	
	
	var producto = {
			"codProd" : codProducto,
			"nombre" : nombreProducto,
			"precio" : precioProducto,
			"costo" : costoProducto,
			"cantidad" : cantidad,
			"descuento" : descuento
	};
	
	notaVentaService.agregarProductoCarrito(producto,{               
		"content_type": "json",
		"onPreload": {start: showLoading, complete: hideLoading},
		"onFinish": function(response){ 
			if(response.errId == 0){	
                             mostrarCarrito();                            
			}else {
                            alerta(response.errGlosa, 'Advertencia');
			}
		}
	});
                	
	return false;
	
}


function validarAgregarProducto(){
	$("#formNotaVenta").validate({
		   onkeyup: false,
		   rules: {		    
			   codigoProducto: 	"required",
			   nombreProducto: 	"required",
			   precioProducto: 	"required",
			   costoProducto :	"required",
			   cantidad	 :	{required: true, min: 1},
			   descuento	 :	"required"		    
		   },
		   messages:{
			   codigoProducto: 	"Debe ingresar codigo de producto",
			   nombreProducto: 	"Debe ingresar nombre de producto",
			   precioProducto: 	"Debe ingresar precio de producto",
			   costoProducto :	"Debe ingresar costo de producto", 
			   cantidad      :	{
                                                    required: 'Debe ingresar cantidad del producto',
                                                    min: 'Debe ingresar una cantidad mayor a 0'
			   			},
			   descuento	:	'Debe ingresar descuento'			   
		   },
		   showErrors: function(errorMap, errorList) {			  
			   var msj = "";			   
			   $(errorList).each(function(key, value){
				   msj += value.message + "<br />";
			   });
			   if(msj != ""){
				   alerta(msj);
			   }			   
		   }
	});
	
	if($("#formNotaVenta").valid())
		return true;
	else
		return false;		
}



function validarImprimir(){
    $("#formNotaVenta").validate({
		   onkeyup: false,
		   rules: {		    
			   codigoCliente:   "required",
			   cliente:         "required",
			   rut:             "required",
			   nomVendedor:     "required",
			   codVendedor:     "required",
			   descuento:       "required",
                           pago :           "required",
                           ordenCompra:           "required"
                           
		   },
		   messages:{
			   codigoCliente:   "Debe ingresar codigo de cliente",
			   cliente:         "Debe ingresar nombre de cliente",
			   rut:             "Debe ingresar rut de cliente",
			   nomVendedor:     "Debe ingresar nombre de vendedor", 
			   codVendedor:     'Debe ingresar codigo de vendedor',				   		
			   descuento:       'Debe ingresar descuento',
                           pago :           "Debe ingresar forma de pago",
                           ordenCompra:     "Debe ingresar numero de orden de compra"
		   },
		   showErrors: function(errorMap, errorList) {			  
			   var msj = "";			   
			   $(errorList).each(function(key, value){
				   msj += value.message + "<br />";
			   });
			   if(msj != ""){
				alerta(msj);
			   }			   
		   }
	});
	
	if($("#formNotaVenta").valid())
            return true;
	else
            return false;	
}


function imprimirNotaVenta(){
    var codigoCliente = $('#codigoCliente').val();
    var cliente       = $('#cliente').val();
    var rut           = $('#rut').val();
    var nomVendedor   = $('#nomVendedor').val();
    var codVendedor   = $('#codVendedor').val();
    var descuento     = $('#descuento').val();
    var pago          = $('select[name=pago]').val();
    var ordenCompra   = $('#ordenCompra').val();
	
    if(!validarImprimir()){
        return;
    }	
	
    var notaVenta = {
			"codigoCliente" : codigoCliente,
			"cliente" : cliente,
			"rut" : rut,
			"nomVendedor" : nomVendedor,
			"codVendedor" : codVendedor,
			"descuento" : descuento,
                        "pago" : pago,
                        "ordenCompra" : ordenCompra                        
                    };
   
    notaVentaService.ingresarNotaVenta(notaVenta,{
		"content_type": "json",
		"onPreload": {start: showLoading, complete: hideLoading},
		"onFinish": function(response){ 
			if(response.errId == 0){                                                      
                            var urlPdf = PATH_BASE + '/notaVenta/pdfNotaVenta.php?idNotaVenta=' + response.codNotaVenta;
                            mostrarCarrito();
                            limpiarForm();
                            muestraMensajeImprimir(urlPdf, 'Nota de venta ' + response.codNotaVenta + ' ingresada correctamente' );                            
			}else {
                            alerta(response.errGlosa, 'Advertencia');
			}
		}
    });
	
    return false;
}

function muestraMensajeImprimir(urlPdf, mensaje){
        //var linkPdf = '<a href=' + urlPdf + '>Imprimir Nota de Venta</a>';
        $("body").append('<div class=mensajePdf>' + mensaje + '</div>');
	$("div.mensajePdf").dialog({
		title : 'Atención',
		height : 150,
		width : 350,
		modal : true,
		resizable : false,
		buttons : {
			"Descargar PDF" : function() {
                                document.location.href = urlPdf;				
			},
                        "Cerrar" : function() {
                                //document.location.href = urlPdf;
				$(this).dialog("close");
			}
		},
		close : function() {
			$(this).remove();
		}
	});
}


function limpiarForm(){
    $('#codigoCliente').val('');
    $('#cliente').val('');
    $('#rut').val('');
    $('#nomVendedor').val('');
    $('#codVendedor').val('');
    $('#descuento').val('');
    $('select[name=pago]').val('');
    $('#ordenCompra').val('');
    $('#codigoProducto').val('');
    $('#nombreProducto').val('');
    $('#precioProducto').val('');
    $('#costoProducto').val('');
    $('#cantidad').val('');
    $('#descuento').val('');
    $('#calculadora').val('');
    return false;
}


function mostrarCarrito(){
    notaVentaService.getHtmlCarrito({
		"content_type": "text",		
		"onFinish": function(response){ 
			$("#carritoCompra").html(response);
		}
    });
    
    return false;
}

function eliminarProducto(numProducto){
    notaVentaService.eliminarProductoCarrito(numProducto,{
        "onPreload": {start: showLoading, complete: hideLoading},
	"onFinish": function(){ 
		mostrarCarrito();
	}
    });
}
